.. _Select_journal_component: Select journal ============== .. contents:: :depth: 4 Настройка компонента ---------------------- Чтобы указать, какой журнал отображать для выбора значения, в настройках компонента требуется заполнить поле **ID журнала**. Компонент автоматически вычисляет журнал на основе типа ассоциации, которая указана в атрибуте, при этом поле **ID журнала** заполнять не нужно. Режим отображения "Пользовательские значения" --------------------------------------------- .. _custom_values: Для передачи в массив определенных данных выбранного журнала (ID журнала) используйте режим **Пользовательские значения**. При выборе режима отображения **Пользовательские значения** ниже укажите значения, которые необходимо выводить. При этом все поля, связанные с фильтрацией, сортировкой и табличным представлением скрываются. .. image:: _static/select_journal/select_journal_7.png :width: 700 :align: center Выбор рабочих пространств для агрегации данных -------------------------------------------------- На вкладке :guilabel:`Данные` в поле **Рабочие пространства для поиска** доступен выбор рабочих пространств, из которых агрегировать данные журнала. Данные журнала будут агрегироваться с учетом добавленных рабочих пространств. .. image:: _static/select_journal/select_journal_8.png :width: 400 :align: center Значение по умолчанию - **Только текущее пространство**. Для выбора доступны значения: * Все пространства * Только текущее пространство (по умолчанию) * Текущее и дополнительные пространства * Только дополнительные пространства При выборе **Текущее и дополнительные пространства** или **Только дополнительные пространства** становится доступен выбор дополнительных пространств: .. image:: _static/select_journal/select_journal_9.png :width: 400 :align: center Динамические критерии для поиска --------------------------------- На вкладке :guilabel:`Данные` в поле **Пользовательские данные запроса** есть возможность генерировать дополнительные параметры поиска: .. image:: _static/select_journal/select_journal_1.png :width: 450 :align: center Список предикатов описан в статье :ref:`Язык предикатов` в разделе **JSON представление**. Предустановленные фильтры --------------------------------- На вкладке :guilabel:`Данные` в поле **Предикаты предустановленного фильтра** можно настроить фильтры компонента, которые будут применены при инициализации. Поле **Предикаты предустановленного фильтра** принимает javascript-выражение, в котором необходимо присвоить переменной ``value`` массив из предикатов. Пример для компонента с установленным **ID журнала = 'currency'**: .. image:: _static/select_journal/select_journal_2.png :width: 400 :align: center В результате при открытии модального окна выбора по умолчанию будет применён фильтр по полю "Заголовок" с типом предикатом "contains" и значением "рубль". .. image:: _static/select_journal/select_journal_3.png :width: 500 :align: center Список предикатов описан в статье Язык предикатов (добавить ссылку) в разделе **JSON представление**. Настройка сортировки по атрибуту --------------------------------- Для настройки сортировки по атрибуту в разделе **"Сортировка"** указать атрибут и порядок сортировки: .. image:: _static/select_journal/select_journal_6.png :width: 400 :align: center Миграция инварианта "Value Title" на новые формы ------------------------------------------------- Если журнал используется для выбора ассоциаций, то лучше в данном случае зарегистрировать эвалюатор для отображаемого имени в **DisplayNameService** на сервере. В таком случае отображаемое имя сможет использоваться на формах, в журналах и много где еще. Если же отображаемое имя специфично для конкретной формы или записи в журнале виртуальные (не имеют представления на сервере), то можно воспользоваться вычисляемым полем **Отображаемое имя значения**. В скрипт записаный в данном поле в качестве аргументов подается .. list-table:: :widths: 10 10 * - '-' - lodash библиотека с утилитными функциями * - value - значение, отображаемое имя которого мы хотим вычислить (даже если поле множественное в скрипт за раз попадает только одно значение) .. image:: _static/select_journal/select_journal_4.png :width: 400 :align: center В некоторых случаях ``value.att()`` может возвращать пустое значение т.к. значение не было подгружено. Можно использовать следующий код для корректного отображения даже если значение не подгружено. .. image:: _static/select_journal/select_journal_5.png :width: 400 :align: center